Methods, devices and systems for improved search of personal and enterprise digital assets

ABSTRACT

A computer-implemented method may comprise iteratively receiving a tag selected by a user of the computing device; storing the received tag in a memory of a computing device; associating, by a processor of the computing device, the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network; and generating, by the processor, a graphical representation of the received tag. A search request may then be received, via the user interface, the search request comprising an expression including at least one of the tags stored in the memory of the computing device. The processor may then identify at least one of the user&#39;s digital assets that is associated with at least one of the tags in the search request. A visual representation may then be generated of each tag included in the expression of the search request, the visual representation being representative of the expression of the search request and indicating a number of digital assets associated with each tag included in the expression of the search request. A file list may then be generated that comprises each digital asset that is associated with each tag included in the expression of the search request.

BACKGROUND

Some Internet search engines return and rank links to content based uponkeywords. Such search engines rank pages by how often the search termsoccurred in the page, or how strongly associated the search terms werewithin each resulting page. Other Internet search engines rank web pagesthat match a given search string based upon human-generated links, withthe underlying assumption that web pages which are linked to from otherimportant pages are themselves likely to be important or at leastrelevant to the user's search request. Google's PageRank algorithm is anexample of such search engines algorithms. PageRank computes a recursivescore for web pages, based on the weighted sum of the ranking of thepages linking to them. However, all such search engines return resultsbased on what the supplier of the ranking information deems to beimportant, which results may or may not be important or relevant to theuser. For example, PageRanking or keyword searches both assume that whatthe search engine deems relevant to the majority of users will berelevant or useful to the user having entered the search. Often, thatassumption is valid, sometimes it is not. Moreover, Google's and other'ssearch engines typically return other people's web pages and documents,and do not consider the user's own files, photos, documents.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows a tag bar according to one embodiment.

FIG. 2 shows a search bar according to one embodiment.

FIG. 3 shows an exemplary user interface to illustrate aspects of anembodiment.

FIG. 4 is a table showing examples of programmatically-generated usertags, according to one embodiment.

FIG. 5 illustrates further aspects of a computer-implemented methodaccording to one embodiment.

FIG. 6 is a flowchart of a computer-implemented method according to oneembodiment.

FIG. 7 shows exemplary computing devices configured according toembodiments. FIG. 7 also shows exemplary tangible, non-transitorycomputer-readable media having data stored thereon representingsequences of instructions which, when executed by the computing device,cause the computing device to carry out and provide the functionalityshown and described herein.

DETAILED DESCRIPTION

The term “search”, connotes an operation to find, identify and retrievecontent, files or any type of data. Most often, all or almost all of theinformation retrieved from an Internet search is a priori unknown to theuser having initiated the search. The returned results are based uponkeywords (often manually or programmatically inserted into a file or awebsite's metadata), which flags information that is deemed important byothers, and which may or may not be important or even relevant to theuser having initiated the search. The scope of such a search isgenerally outside of the user's own data. Most often, the searchencompasses the entire Internet, but leaves out the user's own data andcontent. The search that is carried out is, in fact, a search for otherpeople's information. Indeed, Internet search engines leverage openaccess to other people's information and unstructured searches to returnwhat is, functionally speaking, an enormous ranked listing ofpublicly-available information that was previously generated and madeavailable by others for public consumption.

Embodiments, as described herein, are not drawn to the concept of“search”, as the term's usage was developed above. Instead of searchingfor information, embodiments are focused on retrieving the consumer'sown digital assets, which digital assets may be local to the user or toa group of individuals. The distinction between search for informationand retrieval of digital assets is significant. According to oneembodiment, the terms “assets” or “digital assets” encompass any softitem that can reside on the individual's device or is stored remotely tothe individual's device. A user's assets can reside on the user's owndevices (Mac or Windows, iOS or Android devices and the like) and/or mayreside on storage (e.g., a cloud) that is remote to the user's devicesand that is accessible to the user's or a group including the user.Example of assets include, without limitation, the user's own photos,movies, PDFs, Excel files, Google docs, emails, documents, folders,media, documents and the user's information and files uploaded to socialmedia platforms and the like. Generally speaking, the consumer's owndata, files, content, file structures and the like comprise the user'sassets. In one embodiment, a search of the user's own information iscarried out based upon a search (retrieval) request, and the user's owninformation that satisfies the structured query is retrieved from wherethe user stored it, and presented back to the user.

To enable such retrieval, rather than relying on search provider tags orkey words, embodiments utilize user tags that may be made up andassociated with selected digital assets by the user, ensuring that theuser tags are perceived by the user to be important or useful. Since theuser tags are made up and used solely by the user, they are personal tothe user. Since they are personal to the user, they need not be relevantto anyone else. Indeed, the user may, according to one embodiment, applya user tag of “wrinkled” to a JPG image of an elephant the user saw lastyear in a zoo and the same user tag “wrinkled” to Word document aboutconstruction materials. When used in a keyword search in popular searchengines, the search may return definitions of the word, synonyms and afew pictures of elephants, shar-pei puppies and elderly people.According to one embodiment, however, when the user tag “wrinkled” isutilized as a user tag, what is retrieved may include only the user'sown digital assets and, more particularly, a subset of the user's ownassets that have been tagged by the user with the user tag “wrinkled”;namely, in this case, the JPG of the elephant and the constructionmaterials document. The scope of the search, according to oneembodiment, therefore, is delimited by the user's own digital word. Assuch, retrieval is inherently more personal than search.

A tag, according to one embodiment, is a set or a category to which theuser associates his or her assets. An asset can be tagged to more thanone category. Tags may be readily and intuitively understandable byothers or may be intimately personal to the user. For example, an imageof an elephant may understandably be associated, by the user, with theuser tag “wrinkled”, as elephants typically have wrinkled skin. However,the same user may also associate the user tag “doula” with the sameelephant picture, as the elephant's eyes may remind the user of thewrinkled eyes of an obstetrics nurse she once knew. In this manner,although the user tag “doula” may not evoke an image of an elephant toanyone else, to the user, such association may be indelibly seared inher memory. While the association may make no sense to others, for thatparticular user, such association may constitute the most logical andintuitive way of marking or evoking a piece of digital information forlater retrieval.

One embodiment, therefore, is a tool to retrieve a user's own assetsand/or assets that are local to the user or to a group of users. Thetool, according to embodiments, may function both as a consumerapplication as well as an enterprise application. Indeed, consumers mayuse the present retrieval tool in their personal devices (laptop,smartphones, tablets). A group of users may utilize the presentretrieval tool in private clouds. For example, the present retrievaltool may be used by individuals who have been granted properauthorization to access remote storage services such as Dropbox or Box.Enterprise users can use the embodiments described and shown herein toefficiently retrieve confidential corporate assets stored on anintranet, for example. Moreover, the present retrieval tool may be usedby groups within the enterprise in conjunction with their private cloudto retrieve remotely-stored confidential corporate assets. In that case,the tags used by enterprise users may include code names, lingo orinternal part numbers, for example, that are particular to a project orto the enterprise as a whole.

According to one embodiment, retrieval of assets as described and shownherein de-emphasizes the file structure, including file names, folders,hierarchies, paths, locations and directories in favor of more personaland intuitive tags. The underlying file system of the user's device isnot altered, but the present retrieval tool abstracts away from such anorganizational structure. Moreover, the present retrieval tool removesthe need to launch individual applications to access the correspondingassets (photos, videos, emails etc.) in laptops and mobile devices, asthe user may simply double click (or perform some functionally-similaraction) on a retrieved digital asset to view and/or interact with it inits native application. The association of user tags with the user's owndigital assets enables the categorization thereof under one or moreintuitive and personal categories without the need to associate thesedigital assets with their file type, storage location, etc. The presentretrieval tool, therefore, enables a highly personal search, highlyrelevant retrieval of digital assets and provides a pleasant userexperience in tagging, searching and retrieval.

Tagging Assets

According to one embodiment, the present retrieval tool includes atagger module that is configured to enable the user to associate tagswith his or her digital assets. Once associated with assets, tags can beused to retrieve the assets associated with the tags. Super tags,according to one embodiment, may be associated with a group ofpredetermined tags or a structured expression that includes tags andoperators, thereby enabling the user to use a convenient super taginstead of re-entering the corresponding group of predetermined tags orstructured expression. For example, a user may have entered thefollowing tags in a retrieve software module: “Los Altos, Stucco and ‘Myfav mid-century houses’”, to retrieve all of his own personal digitalassets associated with Los Altos, stucco and his or her favoriteexamples of mid-century architecture. The user may then associate asuper tag called “attractive local houses” to the entered expression“Los Altos, stucco and ‘My fav mid-century houses’”, enabling the userto simply enter “attractive local houses” to retrieve the same digitalassets, rather than repeating (and having to remember) the originalexpression “Los Altos, stucco and ‘My fav mid-century houses’”.

A user interface may be configured to enable the user to manually entertag names, to associate specific tags with specifically-identifieddigital assets or classes or groups of assets. For instance, oneembodiment provides for a tag bar, such as shown at 102 in FIG. 1. Thetag bar 102, according to one embodiment, is an area of the display ofthe user's computing device where the user can manually type the tagnames (or enter tag names using some other data entry modality, such asvoice). In FIG. 1, the tag names entered by the user include Appliance,Refrigerator, Flooring. Similarly, a search bar may be provided, such asshown at 202 in FIG. 2. The search bar 202, according to one embodimentis where the user can manually enter the pre-existing tags to retrievethe digital assets previously associated with the entered tags. In FIG.2, the user has entered MyFrequentSearch, which may be either a tag nameor a super tag. In one embodiment, the functionality of the tag bar 102and the functionality of the search bar 202 may be provided in a singleuser interface tag/search bar, with context and/or the user causing thebar to toggle between tagging and searching functionalities. In oneembodiment, the tag bar 102 may be configured to Autocomplete tag names.That is, when the user begins entering a tag name in the tag bar, thetag bar 102 should automatically list the available tags that match thetyped characters. In one embodiment, tag names may be separated bycommas (for example) so the Autocomplete is only active for the tag namecurrently being typed. The search bar 202, according to one embodimentmay also include Autocomplete functionality, such that when the userstarts entering tag names, the Autocomplete may suggest tag names thatmatch the characters typed thus far.

Tagging assets may be carried out, according to one embodiment, by atagger module. One embodiment of a user interface configured to enablethe user to interact with the Tagger module is shown in FIG. 3. In oneembodiment, the user interface may comprise three user interactionareas; namely, an asset area 302, an existing tag area 304, and a manualtag entry area 306. As shown in FIG. 3, assets that are available fortagging are listed on one side of the tagger screen, in the asset area302. The available tags (Appliance, Refrigerator, Flooring) are shownwithin the existing tag area 304. In one embodiment, the available tagsmay be simply listed within the existing tag Area 304. In anotherembodiment, tags may be represented by tag balls, as shown at 308, 310and 312. A tag ball On/Off button may be provided, and configured as atoggle switch. If the tag ball On/Off switch is ON, tag balls (such asshown at FIG. 3, for example) will be used to tag assets. Moreover, Ifthe tag ball On/Off switch is ON, tag balls will also be used toretrieve previously-tagged assets. If the tag ball On/Off switch is OFF,tag balls will not be used to tag assets and will not be used toretrieve assets. In that case, a text-based user interface may be usedto tag and retrieve the user's digital assets. The tag bar may also beconfigured, according to one embodiment such that when the usercompletes entering tag name, a tag ball may smoothly fall and bounceinto the tag ball area in a pleasing manner, if tag balls are enabled.Other effects may be implemented to provide a pleasant user experience.

Returning now to FIG. 3, tag balls are user interface components thatrepresent tags, with each tag ball representing one tag. In the case ofFIG. 3, three tag balls 308, 310, 312 are shown, representing theAppliance, Refrigerator and Flooring tags, respectively. Although notshown in FIG. 3, some or all of the tag balls may have different colorsand/or other attributes, to better differentiate them from one anotherand to enhance the user experience.

In use according to one embodiment, the user is allowed to select andde-select assets from the list of available assets in the asset area302. In FIG. 3, the user has selected three PNG files; namelyImg_2006.png, Img_2007.png and Img_2008.png from the list. According toone embodiment, the available assets may be of heterogeneous file typesor may all be of the same or a limited number of file types. Forexample, if the tagger module was initiated (using a launcher module,for example, as discussed below) from within an application (such as MSWord, Adobe Photoshop), the assets shown in the asset area 302 may allbe of a file type that is compatible with the application. For example,if the tagger module was initiated within MS Word, then the asset areamay only list assets that are compatible with MS Word. Likewise, if thetagger module was initiated from Adobe Photoshop, the asset area 302 mayonly list assets having an image or a graphical format that arecompatible with Photoshop, such as the .PNG files shown in FIG. 3. Forexample, if the user is in MS Word and wishes to tag the current Worddocument, the user may be given the opportunity to click on a tag buttonfrom the Word application, and the tagger module will be launched withonly the current MS Word document listed in the asset area 302.

As suggested at 314, the user may choose the tags that are to beassociated with the assets selected in the asset area 302. Although acursor is shown at 314, other input modalities may be supported, such astouch. As shown in FIG. 3, the user has selected Img_2006.png,Img_2007.png and Img_2008.png and has associated the tag “Flooring”therewith, by selected the tag ball 312, labeled “Flooring”.

A manual tag entry area 306 may be provided, enabling the user tomanually enter the tag names instead of selecting from the displayedtags in the existing tag area 304. In one embodiment, as the user enters(e.g., types in) the tag names in the manual tag entry area 306, anautocomplete feature may be activated and suggest tag names that matchthe characters entered thus far by the user. This reduces the instancesof misspellings, in which several tags (Appliance, Applience, Apliance)are mistakenly created when only one is intended. Afterselecting/deselecting assets and after selecting the tags that are to beassociated with the elected assets (or entering the tag names separatedby commas), the asset/tag association may be automatically activated orthe user may be required to click on a “TAG” button 316 or other similargraphical user interface component.

A user's own digital assets may be manually tagged by the user. The usermay select existing tags and/or may create new tags having intuitive,suggestive names or highly personal, non-intuitive tag names. Assetsneed not be tagged manually, however. In fact, according to oneembodiment, as assets are created and saved in the user's devices, someor all of the digital assets may be programmatically tagged usingpredetermined categories and tag names. FIG. 4 is an exemplary table oftags that may be associated with digital assets, according to oneembodiment. It is to be understood that the list of tags shown in FIG. 4is non-exhaustive and that the many more or fewer tags may be provided.Some of these tags may be pre-seeded, while others may be devised by theuser. FIG. 4 shows a tag list for the consumer market. The Enterpriseversion of such a list may be quite different, and is more likely to becustomized for and by the deploying company or organization. Indeed, thetag list for the Enterprise may be created based on the type ofEnterprise, the business model of the Enterprise and the type of assetsto be tagged.

For example and with continued reference to FIG. 4, some of the tagsthat may be automatically associated with a given asset include“Creation Date”, which is a tag that includes the date at which theasset in question was created. Similarly, the month of creation of theasset may also be tagged, using the names of the months as tags. Theprogram that created the asset may also be tagged, including, forexample, MS Word, Excel, etc. Similarly, the file type may beautomatically tagged. As should be apparent, assets may beprogrammatically associated with many different tags and may be sortedand searched using any one of the tags or any combination of tags.Moreover, an asset may be associated with programmatically-associatedtags as well as manually-associated tags. For example, a JPG file may beassociated with tags indicating the creation date, the application thatcreated the file, the month of creation or update of the file, andmanually-associated tags such as “Jim's Birthday” and “Dog”. Themanually-associated tags need not be descriptive or even evocative ofthe content of the asset, suffice it for the manually-associated tags tobe meaningful or otherwise useful to the person who created them.

In one embodiment, the application embodying an embodiment utilizes itsown algorithms to programmatically associate tags with assets. Inanother embodiment, remote servers and remote cloud-based services maybe used to programmatically associate tags with assets. For instance,cloud-based services such as Amazon Web Services (AWS), Microsoft'sAzure, together with artificial intelligence or machine learning may beleveraged to analyze the user's digital assets, derive usefulinformation therefrom and tag or suggest tags to be associated withassets.

Retrieving Assets

Retrieving assets, according to one embodiment, includes actions inwhich the user inputs tags as search criteria and is presented with hisor her digital assets (if any) that are associated with one or more ofthe (depending upon the search) inputted tags. When the user enters tagsto retrieve assets, such search can be given a name (e.g., a super tag),which allows the user to retrieve the same list of assets by simplyentering the search name (the super-tag), without manually re-enteringall the desired tags. According to one embodiment, the retrieval ofassets by matching tags and assets may be carried out by a retrievermodule.

FIG. 5 shows an example of a user interface configured to enable a userto interact with the retriever module, according to one embodiment. Asshown therein, the retriever module allows the user to retrieve assetsby providing tag names. Indeed, in the example shown in FIG. 5, the userhas inputted the tags Appliance, Refrigerator and Flooring in the tagbar 506. Note that while the user can input any combination of manualtags, programmatically-associated tags or deep tags (tags created orsuggested by a remote server or service), the present retriever modulemay also be configured to enable the user to turn off one or more ofthese tag types. For example, the user may search based entirely uponprogrammatically-associated tags, based entirely on manually-created andassociated tags or any combination of manual,programmatically-associated or deep tags. In one embodiment, the usermay input a string of tags in the tag bar 506, without specifying anylogical operation thereon. As shown in FIG. 5, the user has simplyinputted Appliance, Refrigerator and Flooring in the tag bar 506,without specifying any logical operation thereon. In that case, the tagball area 504 may simply show tag balls 508, 510 and 512, one tag ballfor each tag entered into the tag bar 506. Note that one or more of theassets may be tagged with more than one of the Appliance, Refrigeratorand Flooring tags. For instance, one of the assets tagged with theRefrigerator tag may be a PDF of a remodel estimate, while another JPGasset may show a Refrigerator and tigerwood flooring and may, therefore,be associated with both the Refrigerator and Flooring tags. One or moreof these assets may also be tagged with the Appliance tag. As shown, thetag balls are arranged in the tag ball area in a manner that suggeststhat at least some of the user's digital assets are associated with morethan one tag, as the tag balls 508, 510 and 512 partially overlie eachother. Had one or more of the user's digital assets been associated withthe entered Appliance tag, but not the Refrigerator or Flooring tags,the appliance tag ball 508 would be positioned in the tag ball areaseparately from the Refrigerator tag ball 510 and separately from theFlooring tag ball 512. Similarly, had one or more of the user's digitalassets been associated with the entered Refrigerator tag, but not theappliance or Flooring tags, the Refrigerator tag ball 510 would bepositioned in the tag ball area separately from the Appliance tag ball508 and separately from the flooring tab ball 512. Likewise, had one ormore of the user's digital assets been associated with the enteredFlooring tag, but not the Appliance or Refrigerator tags, the Flooringtag ball 512 would be positioned in the tag ball area 504 separatelyfrom the Appliance tag ball 508 and separately from the Refrigerator tagball 510.

In this manner, according to one embodiment, the appearance of the tagballs in the tag ball area gives the user some information about his orher own digital assets associated with the entered tags. Moreparticularly, according to tone embodiment, the positioning of the tagballs with respect to one another may provide simple and intuitiveinformation about the user's digital assets associated with one or moreof the entered tags. For example, each of the tag balls 508, 510, 512 inthe example shown in FIG. 5 overlaps another one of the tag balls,indicating that each of the assets associated with each of the enteredtags is also associated with each of the other entered tags. Indeed,each of the tag balls 508, 510, 512 intersects or overlaps with each ofthe other tag balls. Using the cursor 514 or any other pointing deviceor user interface modality, the user may select any of the tag balls orareas where one or more tag balls intersect, and the retriever modulemay dynamically populate the asset area 502 with the user's digitalassets associated with the tag or tags. For example, if the user selectsarea 516, the retriever module may retrieve all or some of the user'sdigital assets that have been tagged with the Flooring and Refrigeratorassets, not including those assets that are tagged or also tagged withthe Appliance tag. In another example, the user may wish to see, in theasset area, those assets that have been tagged with the Flooring tag andmay do so by selecting the area referenced by 518 in FIG. 5. Such arequest may also retrieve assets that are also tagged with the Applianceand Refrigerator tags. Should the user wish the asset area 502 to bepopulated only with the assets that are associated with the flooringtag, but not the appliance or refrigerator tags, another action may betaken such as, for example, double clicking the area 518 to indicatethat only those assets associated with the flooring tag, but not theappliance or refrigerator tags are to be retrieved. The user interfacemay be configured to enable or require other actions within the tag ballarea to select or restrict retrieval of assets.

As shown in FIG. 5, the tag bar 506 is configured to receive one or moretags. According to one embodiment, rather than interact with the tagballs in the tag ball area 504 to retrieve particular digital assets,the tag bar 506 may also be configured to accept, interpret and retrieveassets based upon compound queries comprising tags and logical (e.g.,Boolean) operators such as AND, OR and NOT or based upon Set Operatorssuch as Union, Intersection, Difference, complement and Disjoint. Forexample, the user may enter the following compound search request in thetag bar 506: Flooring AND Refrigerator NOT Appliance. Accordingly, theretriever module would respond to such query by populating the assetarea 502 with all of the user's digital assets that are associated withthe Flooring and Refrigerator tags, but not the Appliance tag. In thetag ball area 504, such a search request would correspond to the areareferenced by the bold outline at 520.

In one embodiment, an asset in the asset area 502 may be “launched” byselecting the assets (e.g., by double clicking upon the listed asset).For instance, if one of the assets listed in the asset area (and which,therefore, is associated with the listed asset or combination of assets)is an Excel spreadsheet, selecting that asset may launch MS Excel orsome other compatible viewer, to enable the user to examine and/ormodify or delete the asset using its native application.

Tag Balls and Tag Ball Operation

In one embodiment, tag balls, such as shown at FIGS. 3 and 5 may beutilized to provide the user with an intuitive and graphicalrepresentation of tagged assets. However, embodiments need not use thetag ball construct and, instead, may rely upon text-based indicia and/orother graphical representations. As noted above, tag balls may berendered in different colors. The colors of the tag balls may besignificant or randomly-assigned, as tag balls are rendered for theuser. Generally, however, it is recommended that tag balls be renderedin light, pleasant tones, with a slightly darker border so that when Tagballs overlap one another, their respective borders are visible.

In one embodiment and as shown in FIGS. 3 and 5, the tag names should bedisplayed within, for example, the tag balls. For instance, in FIG. 5,the tag “Appliance” is displayed within tag ball 508, the tag“Refrigerator” displayed within tag ball 520 and the tag “Flooring” isdisplayed within tag ball 512. As also shown in FIG. 5, tag balls may beconfigured to also list the number of assets associated having the tagin question associated therewith. As shown therein, the Appliance tagballs has 12 assets associated with the Appliance tag, the Flooring tagball has 6 assets associated with the Flooring tag and the Refrigeratortag ball has 8 assets associated with the Refrigerator tag.

According to one embodiment, at least the tagger module and the retrievemodule may be configured to enable the user to customize the appearanceof the tag balls according to their liking. For example, the user may beprovided with the ability to:

-   -   drag the tag balls anywhere within the tag area;    -   drag and overlap two or more tag balls;    -   enlarge or reduce the size of the tag balls;    -   select and deselect a tag ball for tagging;    -   group two or more tag balls into a group. In one embodiment,        such a group itself may morph into a ball shape and would        include some visual indicium to indicate that the resulting tag        ball is not an original tag ball but instead is a group ball (a        ball of balls, as it were); and    -   do anything with a group ball that the user can do with a tag        ball

According to one embodiment, the appearance of a tag ball may be changedwhen selected by the user. Such changes may include highlighting aborder area, color, hue or color intensity of the tag ball. Forinstance, according to one embodiment, when the user clicks or touchesany bordered area of one or more tag ball(s), that area should becomelight or glow, if it was bright before (i.e. selected) or that areashould become bright if it was light or glowing before (i.e.deselected). Other effects are possible within the context of thepresent disclosure.

In one embodiment, when the tag balls are colored and overlap, theintersection between the two may change color to emphasize theintersection. For example, the colors of tag balls can mix in anadditive or subtractive manner to show that some assets have two or moretags associated therewith. Instead of color, various hashes andcross-hatches can be used to show tag ball intersections. Other ways ofgraphically representing the union and intersection of tag balls may bereadily devised, as those of skill in this art may recognize.

Asset Areas

The asset area, as shown at reference numeral 302 in FIGS. 3 and 502 inFIG. 5, lists the digital assets that are selected for tagging as shownin FIG. 3 or that constitute the results of an asset retrieval operationas shown in FIG. 5.

In FIGS. 3 and 5, the asset area shows only the file name of the assetin question. However, the asset area may be configured to show as manyattributes of the assets in question as are associated with the asset,space permitting. The asset area may display different attributes fordifferent classes or type of digital assets. For example, many assetsmay be associated with attributes including asset name, creation dateand time, created by, and the like. Email assets, however, may havedifferent or additional attributes that are unique to emails and theasset area may be configured to show such attributes as desired. Asshown in FIGS. 3 and 5, each asset may have a select/deselect button (orsome other user interface component) to select and deselect the asset.As shown in FIG. 3, the Asset Area 302 may comprise a selectall/deselect all button (as shown, next to the ASSET NAME column headerin FIG. 3). In one implementation, the assets listed in the asset areamay be scrollable, may be listed top to bottom or left to rightdepending the space and size available for the asset area, and may belisted with the following default attributes: asset name, asset typeimage and asset thumb nail (if the digital asset is or includes image orvideo).

Modifying Assets

The user may modify an asset or its properties. According to oneembodiment, some or all of the tags associated with the unmodified assetalso may be associated with the modified asset. However, when the usermodifies an asset, one or more of the associated tags may no longer fitthe modified asset and/or one or more other assets that did not fit theasset before it was modified may now fit the modified asset.Accordingly, a maintainer module may be provided to programmaticallyhandle the tagging of the modified asset. According to one embodiment,the maintainer module may also be configured to enable the user tomaintain (e.g., add, delete tags, change tag names) tags. In oneembodiment, the existing tag area in conjunction with the manual tagentry area may be used to maintain tags. According to one embodiment,the maintainer module may be configured to enable the user to add newtags, change tag names and delete tags. According to one embodiment,when a tag is deleted, the maintainer module may inform and show theaffected digital assets. In other words, the maintainer module may beconfigured to show a list of the assets (if any) that will lose theirassociation with the deleted tag (presuming that one or more assets hadpreviously been associated with the tag to be deleted). When the userconfirms the deletion of a tag, the Maintainer module untags (i.e.,breaks the association) of that tag with the digital asset(s) associatedwith the deleted tag.

As noted above, the maintainer module may be configured such that when auser renames an asset, the tag associations are preserved. For instance,according to one embodiment, if an asset called myphoto.png is renamedto ourPhoto.png, then the tags associated with myPhoto.png asset wouldbecome associated with the renamed asset ourPhoto.png. Assets can bedeleted, which does not delete any tags associated therewith, but breaksthe association between the tag and the now-deleted asset.

Launch and Launcher

According to one embodiment, a launcher module may be provided to enablean appropriate application to open an asset that the user wants to openby, for example, double clicking on the asset or performing some otherfunctionally-similar action. According to one embodiment, any asset isthat is selected from the retriever module user interface may be openedby the appropriate launcher application, via the launcher module. Forexample, if an image is listed by the retriever module, the user can tapor double click on the image and to launch its default launcherapplication such as, in this case, a photo viewer or editor. Otherexamples of launchers include MS Word to launch Word documents or a texteditor (e.g., Notepad in Windows) may be the launcher for a textdocument.

According to one embodiment, one or more of the launcher applicationsmay be provided with a button or other user interface configured toinitiate the tagger module. Such a button may simply be called a “Tag”button. According to one embodiment, when the user is viewing ormodifying an asset in any of the launcher-supported applications (i.e.,launcher applications provided with the Tag button and the ability tolaunch the tagger module), the asset may be eligible for tagging via thetagger module such that one or more tags become associated therewith.For example, when a user opens a document in MS Word, that document maybe selected for tagging by default. If the user wishes to tag that worddocument, the user may then select the tag button, which initiates thetagger module. That document may also, according to one embodiment,become programmatically tagged with one or more tags as shown in FIG. 3,without further involvement from the user.

Some launcher applications may launch multiple assets at the same time.For example, the email client MS Outlook or any email software usuallylists multiple emails, each one of which may be considered to be andtreated as, one of the user's digital an asset. If one or more emailsare to be tagged, the user may highlight and select them. Afterselection, the user may, for example, right-click the selected emailsand select “Tag” from the context menu, which action would cause theinitiating of the tagger module.

Finder-Explorer

Finder-Explorer is the folder/file exploring tools that are part ofWindows and MAC systems. In Windows-based systems, the tool is calledWindows Explorer and in MAC-based systems, the tool is called theFinder. For simplicity's sake, herein below, these tools will be calledFinder-Explorer. According to one embodiment, when the user is listinghis or her assets through Finder-Explorer, the user is given theopportunity to select (e.g., right-click) the asset to select that assetand click on a “Tag” button in the Context Menu. When “Tag” is selectedon the Context Menu, the tagger module may be launched, to enable theuser to tag the selected asset or assets.

FIG. 6 is a flow chart of a computer-implemented method according to oneembodiment. As shown therein, the computer-implemented method maycomprise iteratively performing the acts detailed in blocks B61 to B64.Indeed, block B61 calls for receiving, in a first area of a userinterface of a computing device, a tag selected by a user of thecomputing device. As described herein above, the tag need not bedescriptive of the contents but may be merely be evocative or otherwiseuseful, to this particular user, of the contents or of somecharacteristic thereof. Block B62 calls for storing the received tag ina memory of a computing device. The processor(s) of the computing devicemay then associate the stored tag with one or more digital assets storedin the computing device or stored in the user's remote storage (e.g., acloud service such as Dropbox, Microsoft OneDrive, and the like) that isaccessible over a computer network, as shown at B63. In this context,one embodiment distinguishes the digital assets stored in the user'scomputing device or user's cloud with other digital assets that may beaccessible on the internet. Such other digital assets, generallyspeaking, are not the user's (whether an individual or a legal entity)digital assets, but are digital assets (e.g., web pages, movies onstreaming services, PDF documents on public servers) that are accessibleand used by the general public. Block B64 calls for the processor(s) togenerate a graphical representation of the received tag in a second areaof the user interface of the computing device. One possibleimplementation of such a graphical representation is shown at FIGS. 3and 5. However, embodiments are not limited thereby, as other graphicalrepresentations of the generated tags may be devised, as those of skillin this art may recognize. B61, B62, B63 and B64 may be repeatedlycarried out, as the user generates tags and causes them to becomeassociated with his or her digital assets (audio files, video files,photos, text documents, PDF documents, Excel files and the like).

In block B65, the computing device may receive, via the user interface,a search request comprising an expression including at least one of thetags stored in the memory of the computing device. As noted above, thesearch request may, but need not, include an expression including aplurality of tags and logical, Boolean or set operators (Union,Intersection, Complement, AND, OR, NOT, etc.). The processor(s) may thenidentify, as shown at B66, at least one digital asset, stored in thecomputing device or stored in the remote storage of the user that isaccessible over a computer network, that is associated with at least oneof the tags in the search request. Block B66, therefore, includes withinits scope, identifying all of the digital assets associated with each ofthe tags in the expression of the entered search request, as well as thedigital assets that otherwise satisfy the expression of the searchrequest as a whole. For example, if the search request received from theuser by the computing device included the expression “(Bay Area AND(Mid-Century OR Stucco) NOT Palo Alto)” would cause the processor orprocessor to identify all of the user's own digital assets that werepreviously tagged with the user's tags “Bay Area” and “Mid-Century” or“Stucco” but would omit any of the user's own digital assets that aretagged with the user tag “Palo Alto”. It is to be noted that the syntaxof the expression above and the use of the AND, OR NOT operators ismerely exemplary and illustrative in nature and not intended to limitany embodiment or implementation.

Block B67 calls for generating, by the processor of the computingdevice, a visual representation of each tag included in the expressionof the search request in the second area of the user interface of thecomputing device. According to one embodiment, the visual representationmay be representative of the expression of the search request and mayindicate the number of digital assets associated with each tag includedin the expression of the search request. As shown in FIG. 5, forexample, the visual representation is shown at 504, with the threepartially overlapping tag balls 508, 510 and 512. Here, the user tagsreceived by the computing device include Appliance, Refrigerator andFlooring, each tag being separated by a comma. The “Appliance,Refrigerator, Flooring” string represents an expression, for which thevisual representation is generated at 504. Note that the expression“Appliance, Refrigerator, Flooring” does not include anyexpressly-entered logical operators. The visual representation 504,therefore, shows references to all digital assets that are associatedwith one, two or all three entered user tags, in an easilyunderstandable, intuitive manner, with the overlaps between tag ballsshowing instances where digital assets are associated with more than oneuser tag.

In one embodiment, a check box or some other user interface element maybe provided to toggle the visual representation of the expression of thesearch request on and off. In a first state, the check box causes thevisual representation of the expression of the search request (tagballs, in one embodiment) to be displayed and used for tagging andretrieving digital assets. In a second state thereof, the visualrepresentation of the expression of the search request (tag balls, inone embodiment) is not displayed or used for tagging and retrievingdigital assets.

Thereafter, in FIG. 6, a list comprising each digital asset that isassociated with a selected tag or tags included in the expression of thesearch request may be generated, as shown at B68. For example, the usermay select one of the tag balls 508, 510 or 512 and cause a list of thedigital assets associated with the selected tag to be generated andrendered on a display of his or her computing device. Alternatively, theuser may select an intersection of any or all of the tag balls and causea corresponding list of digital assets to be generated that areassociated with the intersecting area of the tag balls. Alternativelystill, the user may select a union of any or all of the tag balls andcause a corresponding list of digital assets to be generated that areassociated with the union of the selected tag balls.

In one embodiment, the graphical representation of the received tag mayinclude a ball. The visual representation of each tag included in theexpression of the search request may include, in one embodiment, a Venndiagram in which each tag is represented as a set. The expression of thesearch request may include one or more tags and/or one or more set orother logical operators. The associating of the stored tag with at leastone digital asset stored in the computing device or stored in a remotestorage of the user that is accessible over a computer network may beperformed, according to one embodiment, with the digital asset being ofany type and being stored at any location with the computing device orremote storage of the user. The digital assets may include any type offiles or folders. A search name (also called a super tag herein) may bereceived from the user and the received search name may then beassociated with the search request.

A request to edit or delete a tag selected by the user may be receivedby the computing device and acted upon. In one embodiment and as shownin FIG. 4, tags may be programmatically (e.g., automatically) generatedand associated with one or more digital assets, without input from auser of the computing device. The programmatically generated tag may,according to one embodiment, identify an application that created thedigital asset, a date of creation or update of the digital asset, a filetype of the digital asset and/or a month of creation or update of thedigital asset, to identify but a few of the possibilities. In oneembodiment, receiving the tag selected by the user of the computingdevice may be performed from within a native application (e.g., MS Word,Adobe Acrobat) of the digital asset with which the selected tag is to beassociated. In one embodiment, the computing device may receive a tagfrom and generated by a remote service over a computer network and mayassociate the tag received from the remote service with one or moredigital assets.

In another embodiment, all of the user's digital assets may be storedremotely from the user's computing device. In that case, thefunctionality described herein may reside and be carried out remotelyfrom the user's computing device. In that case, the user's computingdevice may act as a client, communicating with remote servers andservices to carry out all or a portion of the functionality describedand shown herein. Moreover, machine learning and artificial intelligence(AI) on the user's computing device and/or remote thereto may beleveraged to programmatically generate tags to be associated with theuser's own digital assets.

FIG. 7 shows exemplary computing devices 702 configured according toembodiments. FIG. 7 also shows exemplary tangible, non-transitorycomputer-readable media 718, 704, 705 and/or 706 having data storedthereon representing sequences of instructions which, when executed bythe computing device, cause the computing device to carry out andprovide the functionality shown and described herein. As shown therein,reference numbers 702 denotes a computing device, which may include adesktop computer, a mobile device, a smart phone or watch or any othertype of computing device. Such a computing device 702 may comprisedirect access data storage devices such as magnetic disks 704,non-volatile semiconductor memories (EEPROM, Flash, etc.) 706, a hybriddata storage device comprising both magnetic disks 704 and non-volatilesemiconductor memories, as suggested at 705, one or more microprocessors708 and volatile memory 710. The computing device 702 may also comprisea network interface 716, configured to communicate over network 714 withremote servers (not shown in FIG. 7). References 704, 705 and 706 areexamples of tangible, non-transitory computer-readable media having datastored thereon representing sequences of instructions which, whenexecuted by a computing device, cause the computing device to carry outthe computer-implemented methods and functionality described and shownherein. Some of these instructions may be stored locally in thecomputing device 702, while others of these instructions may be stored(and/or executed) remotely and communicated to the computing device 702over the network 714. In other embodiments, all of these instructionsmay be stored locally in the computing device 702, while in still otherembodiments, all of these instructions are stored and executed remotely,based on user inputs and interactions at the computing device 702, andthe results communicated to the computing device 702. In anotherembodiment, the instructions may be stored on another form of atangible, non-transitory computer readable medium, such as shown at 718.For example, reference 718 may be implemented as an optical (or someother storage technology) disk, which may constitute a suitable datacarrier to load the instructions stored thereon onto the computingdevice 702, thereby re-configuring the computing device according to oneor more of the embodiments described and shown herein. In otherimplementations, reference 718 may be embodied as an encrypted Flashdrive. Other implementations are possible.

In the foregoing description, numerous specific details are set forth inorder to provide a thorough understanding of one or more aspects and/orfeatures of the exemplary embodiments. It will be apparent to oneskilled in the art, however, that one or more aspects and/or featuresdescribed herein may be omitted in favor of others or omitted alltogether. In some instances, the description of well-known process stepsand/or structures are omitted for clarity or for the sake of brevity.

Herein, devices or processes that are described as being incommunication with each other need not be in continuous communicationwith each other, unless expressly specified otherwise. In addition,devices or processes that are disclosed to be in communication with oneanother may communicate directly or indirectly through one or moreintermediaries.

Further, although constituent steps of methods have been described in asequential order, such methods may be configured to work in alternateorders. In other words, any sequence or order of steps that may bedescribed herein does not, in and of itself, indicate a requirement thatthe steps be performed in that order. The steps of described processesmay be performed in an order that differs from the order describedherein. Further, some steps may be performed simultaneously despitebeing described or implied as occurring non-simultaneously (e.g.,because one step is described after the other step). Moreover, theillustration of a process by its depiction in a drawing does not implythat the illustrated process is exclusive of other variations andmodifications thereto, does not imply that the illustrated process orany of its steps are necessary to one or more of the invention(s), anddoes not imply that the illustrated process is preferred over otherprocesses.

When a single device or article is described, it will be readilyapparent that more than one device/article (e.g., whether or not theycooperate) may be used in place of a single device/article. Similarly,where more than one device or article is described (e.g., whether or notthey cooperate), it will be readily apparent that a singledevice/article may be used in place of the more than one device orarticle. The functionality and/or the features of a device may bealternatively embodied by one or more other devices that are notexplicitly described as having such functionality/features.

Lastly, while certain embodiments of the disclosure have been described,these embodiments have been presented by way of example only, and arenot intended to limit the scope of the disclosure. Indeed, the novelmethods, devices and systems described herein may be embodied in avariety of other forms. Furthermore, various omissions, substitutionsand changes in the form of the methods and systems described herein maybe made without departing from the spirit of the disclosure. Theaccompanying claims and their equivalents are intended to cover suchforms or modifications as would fall within the scope and spirit of thedisclosure. For example, those skilled in the art will appreciate thatin various embodiments, the actual physical and logical structures maydiffer from those shown in the figures. Depending on the embodiment,certain steps described in the example above may be removed, others maybe added. Also, the features and attributes of the specific embodimentsdisclosed above may be combined in different ways to form additionalembodiments, all of which fall within the scope of the presentdisclosure. Although the present disclosure provides certain preferredembodiments and applications, other embodiments that are apparent tothose of ordinary skill in the art, including embodiments which do notprovide all of the features and advantages set forth herein, are alsowithin the scope of this disclosure. Accordingly, the scope of thepresent disclosure is intended to be defined only by reference to theappended claims.

1. A computer-implemented method, comprising: iteratively: receiving, in a first area of a user interface of a computing device, a tag selected by a user of the computing device; storing, in a memory of a computing device, the received tag; associating, by a processor of the computing device, the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network; and generating, by the processor, a graphical representation of the received tag in a second area of the user interface of the computing device; receiving, via the user interface, a search request in the first area of the user interface, the search request comprising an expression including at least one of the tags stored in the memory of the computing device; identifying, by the processor of the computing device, at least one digital asset, stored in the computing device or stored in the remote storage of the user that is accessible over a computer network, that is associated with at least one of the tags in the search request; generating, by the processor of the computing device, a visual representation of each tag included in the expression of the search request in the second area of the user interface of the computing device, the visual representation being representative of the expression of the search request and indicating a number of digital assets associated with each tag included in the expression of the search request; and selectively generating, by the processor, a list comprising each digital asset that is associated with a selected tag or tags included in the expression of the search request.
 2. The computer-implemented method of claim 1, wherein the graphical representation of the received tag includes a ball.
 3. The computer-implemented method of claim 1, wherein the visual representation of each tag included in the expression of the search request includes a Venn diagram in which each tag is represented as a set.
 4. The computer-implemented method of claim 1, wherein the expression of the search request includes at least one of: one or more tags; and one or more set or other logical operators.
 5. The computer-implemented method of claim 1, wherein associating the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network is performed with the at least one digital asset being of any type and being stored at any location with the computing device or remote storage of the user.
 6. The computer-implemented method of claim 1, wherein the at least one digital asset includes at least one of a file and a folder.
 7. The computer-implemented method of claim 1, further comprising receiving from the user a search name and associating the received search name with the search request.
 8. The computer-implemented method of claim 1, further comprising receiving a request to edit or delete a tag selected by the user.
 9. The computer-implemented method of claim 1, further comprising programmatically generating a tag and associating the programmatically-generated tag with one or more digital assets, without input from a user of the computing device.
 10. The computer-implemented method of claim 9, wherein the programmatically generated tag identifies at least one of an application that created the digital asset, a date of creation or update of the digital asset, a file type of the digital asset, and a month of creation or update of the digital asset.
 11. The computer-implemented method of claim 1, wherein receiving the tag selected by the user of the computing device is performed from within a native application of the digital asset with which the selected tag is to be associated.
 12. The computer-implemented method of claim 1, further comprising receiving a tag from a remote service over a computer network and associating the tag received from the remote service with at least one digital asset.
 13. A computer system, comprising: at least one processor; at least one data storage device coupled to the at least one processor; a plurality of processes spawned by the at least one processor, the processes including processing logic for: iteratively: receiving, in a first area of a user interface of a computing device, a tag selected by a user of the computing device; storing, in a memory of a computing device, the received tag; associating, by a processor of the computing device, the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network; and generating, by the processor, a graphical representation of the received tag in a second area of the user interface of the computing device; receiving, via the user interface, a search request in the first area of the user interface, the search request comprising an expression including at least one of the tags stored in the memory of the computing device; identifying, by the processor of the computing device, at least one digital asset, stored in the computing device or stored in the remote storage of the user that is accessible over a computer network, that is associated with at least one of the tags in the search request; generating, by the processor of the computing device, a visual representation of each tag included in the expression of the search request in the second area of the user interface of the computing device, the visual representation being representative of the expression of the search request and indicating a number of digital assets associated with each tag included in the expression of the search request; and selectively generating, by the processor, a list comprising each digital asset that is associated with a selected tag or tags included in the expression of the search request.
 14. The computer system of claim 13, wherein the graphical representation of the received tag includes a ball.
 15. The computer system of claim 13, wherein the visual representation of each tag included in the expression of the search request includes a Venn diagram in which each tag is represented as a set.
 16. The computer system of claim 13, wherein the expression of the search request includes at least one of: one or more tags; and one or more set or other logical operators.
 17. The computer system of claim 13, wherein associating the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network is performed with the at least one digital asset being of any type and being stored at any location with the computing device or remote storage of the user.
 18. The computer system of claim 13, wherein the at least one digital asset includes at least one of a file and a folder.
 19. The computer system of claim 13, further comprising processing logic for receiving from the user a search name and associating the received search name with the search request.
 20. The computer system of claim 13, further comprising processing logic for receiving a request to edit or delete a tag selected by the user.
 21. The computer system of claim 13, further comprising processing logic for programmatically generating a tag and associating the programmatically-generated tag with one or more digital assets, without input from a user of the computing device.
 22. The computer system of claim 21 wherein the programmatically generated tag identifies at least one of an application that created the digital asset, a date of creation or update of the digital asset, a file type of the digital asset, and a month of creation or update of the digital asset.
 23. The computer system of claim 13, wherein receiving the tag selected by the user of the computing device is performed from within a native application of the digital asset with which the selected tag is to be associated.
 24. The computer system of claim 13, further comprising processing logic for receiving a tag from a remote service over a computer network and associating the tag received from the remote service with at least one digital asset.
 25. A non-transitory computer-readable medium storing a computer program product that, when executed by a computing device, causes the computing device to perform operations comprising: iteratively: receiving, in a first area of a user interface of a computing device, a tag selected by a user of the computing device; storing, in a memory of a computing device, the received tag; associating, by a processor of the computing device, the stored tag with at least one digital asset stored in the computing device or stored in a remote storage of the user that is accessible over a computer network; and generating, by the processor, a graphical representation of the received tag in a second area of the user interface of the computing device; receiving, via the user interface, a search request in the first area of the user interface, the search request comprising an expression including at least one of the tags stored in the memory of the computing device; identifying, by the processor of the computing device, at least one digital asset, stored in the computing device or stored in the remote storage of the user that is accessible over a computer network, that is associated with at least one of the tags in the search request; generating, by the processor of the computing device, a visual representation of each tag included in the expression of the search request in the second area of the user interface of the computing device, the visual representation being representative of the expression of the search request and indicating a number of digital assets associated with each tag included in the expression of the search request; and selectively generating, by the processor, a list comprising each digital asset that is associated with a selected tag or tags included in the expression of the search request. 